var express=require("express");
var router=express.Router();
var {createToken,getMobile} =require("../utils/token");
var {
    UserList,
    TiWenList,
    Goods,
    Cart,
    Advise,
    Outin,
    Users
} = require("../utils/model");
var axios = require("axios");


router.get("/index",(req,res)=>{
    res.json({
        msg:"接口连接成功",
        code:200,
        result:null
    })
});
//req.body  POST 请求提交的数据
router.get("/demo/:type?",(req,res)=>{
    res.json({
        msg:"node 简单的接口",
        code:200,
        result:null,
        headers:req.headers, //请求头
        query:req.query,     //查询参数? get请求
        params:req.params   //路由参数 :
    })
});
//req 请求信息  前端发送到后端  携带的参数信息
//res 响应信息  后端发送到前端
router.post("/addSome",(req,res)=>{
    res.json({
        code:200,
        result:null,
        msg:"添加成功",
        body:req.body  //POST 请求req.body 请求数据
    })
})

//模块化 接口定义  define
//接口暴露 exports
//接口引入 require

router.post("/login",(req,res)=>{
    var body = req.body;
    UserList.findOne({
        mobile:body.mobile, 
    })
    .then(result=>{
        if(result){
            if(result.password == body.password){
                var token=createToken(result.mobile);
                result.token=token;
                res.json({
                    code:200,
                    msg:"登录成功",
                    type:1,
                    result
                })
            }else{
                res.json({
                    code:200,
                    msg:"登录失败,手机号与密码不匹配",
                    type:0,
                })
            }
        }else{
            res.json({
                code:200,
                msg:"登录失败",
                type:0,
            })
        }
    })
    .catch(err=>{
        res.json({
            code:500,
            msg:"服务器数据异常",
            type:0,
        })
    })
})

router.post("/sendcode",(req,res)=>{
    var body=req.body;
    axios.get("http://47.104.209.44:3333/captcha/sent",{
        params:{
            phone:body.mobile
        }
    }).then(result=>{
        if(result.data.code==200){
            res.json({
                code:200,
                msg:"验证码发送成功",
                type:1,
            })
        }else{
            res.json({
                code:200,
                type:0,
                msg:"验证码发送失败"
            })
        }
    })
})
router.post("/checkcode",(req,res)=>{
    var body=req.body;
    axios.get("http://47.104.209.44:3333/captcha/verify",{
        params:{
            phone:body.mobile,
            captcha:body.sms
        }
    }).then(result=>{
        if(result.data.code==200){
            UserList.findOne({
                mobile:body.mobile
            }).then(data=>{
                if(data){
                    data.token=createToken(data.mobile);
                    res.json({
                        code:200,
                        msg:"登录成功",
                        type:1,
                        result:data
                    })
                }else{
                    res.json({
                        code:200,
                        msg:"手机号未被注册，请联系管理员",
                        type:1,
                    })
                }
            })
            
        }else{
            res.json({
                code:200,
                type:0,
                msg:"验证码校验失败"
            })
        }
    })
})
router.post("/getuserinfo",(req,res)=>{
    getMobile(req,res,mobile=>{
        UserList.findOne({
            mobile
        }).then(result=>{
            if(result){
                res.json({
                    code:200,
                    type:1,
                    msg:"获取个人信息成功",
                    result
                })
            }else{
                res.json({
                    code:200,
                    type:0,
                    msg:"获取个人信息失败",
                })
            }
        }).catch(err=>{
            res.json({
                code:200,
                msg:"获取个人信息失败",
                type:0
            })
        })
    })
})
router.get("/homebanner",(req,res)=>{
    getMobile(req,res,mobile=>{   //
        res.json({
            msg:"获取数据成功",
            code:200,
            result:[
                {
                    imgUrl:"https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1472341911,4099256982&fm=26&gp=0.jpg",
                    text:"万众一心,抗击肺炎"
                },
                {
                    imgUrl:"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2485709532,347906044&fm=26&gp=0.jpg",
                    text:"爱满春来。武汉加油！中国加油！"
                },
                {
                    imgUrl:"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1594040081210&di=172db14a7d3b1974aa0eaae9400a0c92&imgtype=0&src=http%3A%2F%2F5b0988e595225.cdn.sohucs.com%2Fimages%2F20170824%2Fdaa9c31d612842fca8f206d9b281f47c.jpeg",
                    text:"全党动员防疫情，人人都是安全员"
                },
                {
                    imgUrl:"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1594038980404&di=a9e8eb7e6e5a510f35429dd8e6cc03ef&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201807%2F22%2F20180722235853_elpop.thumb.700_0.jpg",
                    text:"万众一心众志成城科学防治战胜新型肺炎！"
                }
            ]
        })
    })

    
})
router.post("/getalluserlist",(req,res)=>{
    getMobile(req,res,mobile=>{
        UserList.find().sort({_id:-1}).then(result=>{
            if(result.length){
                res.json({
                    code:200,
                    type:1,
                    msg:"信息列表获取成功",
                    result
                })
            }else{
                res.json({
                    code:200,
                    type:0,
                    msg:"信息列表获取失败",
                })
            }
        }).catch(err=>{
            res.json({
                code:200,
                msg:"获取失败",
                type:0
            })
        })
    })
})
router.post("/adduser",(req,res)=>{
    getMobile(req,res,mobile=>{   // 测试 token 
        var body = req.body;
        UserList.findOne({
            mobile:body.mobile,
        }).then(result=>{
           if(result){
                res.json({
                    code:200,
                    msg:"用户已经存在,请重新添加",
                    type:0,
                });
           }else{
               body.password = "aa",
               body.time = new Date();
               UserList.insertMany(body)
               .then(data=>{
                    UserList.find({}).sort({_id:-1}).then(list=>{
                        res.json({
                            code:200,
                            msg:"用户添加成功",
                            type:1,
                            result:list
                        })
                    })
               })
           }
        }).catch(err=>{
            res.json({
                code:500,
                msg:"服务器异常",
                type:0,
            })
        })
    })
});
router.post("/deluserone",(req,res)=>{
    getMobile(req,res,mobile=>{
        UserList.remove({
            _id:req.body._id
        }).then(result=>{
            res.json({
                code:200,
                msg:"用户删除成功",
                result,
                flag:1
            })
        }).catch(err=>{
            res.json({
                code:200,
                msg:"用户删除失败",
                flag:0
            })
        })
    })
})
router.post("/changeoneuserinfo",(req,res)=>{
    var body = req.body;
    getMobile(req,res,mobile=>{
        UserList.updateMany({
            _id:body._id
        },{
            $set:body
        }).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"用户信息修改成功",
                result
            })
        })
    })
})
router.post("/addtiwenlog",(req,res)=>{
    getMobile(req,res,mobile=>{
        var body=req.body;
        body.mobile=mobile;
        body.time=new Date();
        TiWenList.insertMany(body)
        .then(data=>{
            TiWenList.find({mobile}).sort({_id:-1}).then(list=>{
                res.json({
                    code:200,
                    type:1,
                    msg:"体温记录添加成功",
                    result:list
                })
            })
        }).catch(err=>{
            res.json({
                code:500,
                type:0,
                msg:"服务器异常",
            })
        })
    })
})
// router.post("/findtiwenlist",(req,res)=>{
//     getMobile(req,res,mobile=>{
//         TiWenList.find({mobile}).sort({_id:-1}).then(list=>{
//             res.json({
//                 code:200,
//                 type:1,
//                 msg:"体温记录添加成功",
//                 result:list
//             })
//         }).catch(err=>{
//             res.json({
//                 code:500,
//                 type:0,
//                 msg:"服务器异常",
//             })
//         })
//     })
// })
router.post("/findtiwenlist",(req,res)=>{
    getMobile(req,res,mobile=>{   // 测试 token 
        TiWenList.find({mobile}).sort({_id:-1}).then(list=>{
            res.json({
                code:200,
                msg:"体温记录查询成功",
                type:1,
                result:list
           })
        }).catch(err=>{
            res.json({
                code:500,
                msg:"服务器异常",
                type:0,
            })
        })
    })
});
router.post("/findtiwenlogtime",(req,res)=>{
    var body=req.body;
    getMobile(req,res,mobile=>{
        TiWenList.find({
            mobile,
            time:{
                $gte:body.startTime,
                $lte:body.endTime
            }
        }).sort({_id:-1}).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"体温记录查询成功",
                result
            })
        })
    })
})
router.post("/changetiwenlog",(req,res)=>{
    var body=req.body;
    getMobile(req,res,mobile=>{
        TiWenList.updateMany({
            _id:body._id
        },{
            $set:{
                tiwen:body.tiwen,
                time:new Date(),
                flag:body.flag
            }
        }).then(result=>{
            TiWenList.find({
                mobile
            }).sort({_id:-1}).then(data=>{
                res.json({
                    code:200,
                    type:1,
                    msg:"体温记录修改成功",
                    result:data
                })
            })
        })
    })
})
router.post("/deltiwenlogone",(req,res)=>{
    getMobile(req,res,mobile=>{
        TiWenList.remove({
            _id:req.body._id
        }).then(result=>{
            res.json({
                code:200,
                msg:"体温记录删除成功",
                result,
                type:1
            })
        }).catch(err=>{
            res.json({
                code:200,
                msg:"体温记录删除失败",
                type:0
            })
        })
    })
})
router.post("/udpateistest",(req,res)=>{
    getMobile(req,res,mobile=>{
        TiWenList.updateMany({
            _id:req.body._id
        },{
            $set:{
                isTest:req.body.checked
               
            }
        }).then(result=>{
            res.json({
                code:200,
                msg:"核算检测修改成功",
                result,
                type:1
            })
        }).catch(err=>{
            res.json({
                code:200,
                msg:"核算检测修改失败",
                type:0
            })
        })
    })
})
router.post("/findGoodlist",(req,res)=>{
    getMobile(req,res,mobile=>{
        var limit=req.body.limit||0;
        Goods.find({

        }).limit(limit).sort({_id:-1}).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"查询成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                type:0,
                msg:"查询失败"
            })
        })
    })
})
router.post("/findGoodType",(req,res)=>{
    getMobile(req,res,mobile=>{
        var limit = req.body.limit || 0;
        Goods.distinct("type").then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"查询成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                msg:"查询失败",
                type:0
            })
        })
    })
})
router.post("/getGoodDetail",(req,res)=>{
    
    getMobile(req,res,mobile=>{
        Goods.findOne({
            _id:req.body._id
        }).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"商品查询成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                type:0,
                msg:"查询失败"
            })
        })
    })
})
router.post("/addshopcart",(req,res)=>{
    var body=req.body;
    getMobile(req,res,mobile=>{
        Cart.findOne({
            mobile,
            goodId:body.goodId
        }).then(data=>{
            if(data){
                Cart.updateMany({
                    mobile,
                    goodId:body.goodId
                },{
                    $inc:{
                        count:body.count
                    }
                }).then(result=>{
                    res.json({
                        code:200,
                        type:1,
                        msg:"添加购物车成功"
                    })
                })
            }else{
                body.mobile=mobile,
                body.time=new Date();
                Cart.insertMany({
                    ...body
                }).then(result=>{
                    res.json({
                        code:200,
                        type:1,
                        msg:"新增购物车成功",
                        result
                    })
                })
            }
        })
    })
})
router.post("/getmycartlist",(req,res)=>{
    getMobile(req,res,mobile=>{
        Cart.find({
            mobile,
        }).sort({_id:-1}).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"购物车查询成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                msg:"购物车查询失败",
                type:0
            })
        })
    })
})
router.post("/delonegood",(req,res)=>{
    getMobile(req,res,mobile=>{
        Cart.remove({
            mobile,
            goodId:req.body.goodId
        }).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"删除商品成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                type:0,
                msg:"删除失败"
            })
        })
    })
})
router.post("/changeonecheck",(req,res)=>{
    var body=req.body;
    getMobile(req,res,mobile=>{
        var obj={
            mobile
        }
        if(body.goodId){
            obj.goodId=body.goodId
        }
        Cart.updateMany(obj,{
            $set:{
                ischeck:body.ischeck
            }
        }).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"操作成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                type:0,
                msg:"操作失败"
            })
        })
    })
})
router.post("/delchecked",(req,res)=>{
    getMobile(req,res,mobile=>{
        Cart.remove({
            mobile,
            ischeck:true, // 选中全部删除 
        }).then(result=>{
            res.json({
                code:200,
                msg:"批量删除成功",
                result,
                type:1
            })
        }).catch(err=>{
            res.json({
                code:200,
                msg:"批量删除失败",
                type:0
            })
        })
    })
})
router.post("/changeonecount",(req,res)=>{
    var body=req.body;
    getMobile(req,res,mobile=>{
        Cart.updateMany({
            mobile,
            goodId:body.goodId
        },{
            $set:{
                count:body.count
            }
        }).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"数量操作成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                type:0,
                msg:"数量操作失败"
            })
        })
    })
})
router.post("/addadvise",(req,res)=>{
    getMobile(req,res,mobile=>{
        var body=req.body;
        UserList.findOne({
            mobile
        }).then(data=>{
            body.mobile=mobile,
            body.time=new Date(),
            body.userinfo=data;
            Advise.insertMany(body)
            .then(result=>{
                res.json({
                    code:200,
                    type:1,
                    msg:"意见添加成功",
                    result
                })
            }).catch(err=>{
                res.json({
                    code:200,
                    type:0,
                    msg:"意见添加失败"
                })
            })
        })
    })
})
router.post("/getadviselist",(req,res)=>{
    getMobile(req,res,mobile=>{
        Advise.find({

        }).sort({_id:-1}).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"意见查询成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                type:0,
                msg:"意见查询失败"
            })
        })
    })
})
router.post("/deladviseone",(req,res)=>{
    getMobile(req,res,mobile=>{
        Advise.remove({
            _id:req.body._id
        }).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"删除成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                type:0,
                msg:"删除失败"
            })
        })
    })
})

router.post("/getoneadvisebyid",(req,res)=>{
    getMobile(req,res,mobile=>{
        Advise.findOne({
            _id:req.body._id
        }).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"查询成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                msg:"查询失败",
                type:0
            })
        })
    })
})
router.post("/updateadvise",(req,res)=>{
    getMobile(req,res,mobile=>{
        var body=req.body;
        Advise.updateMany({
            _id:body._id
        },{
            $set:{
                title:body.title,
                content:body.content,
                category:body.category,
                time:new Date()
            }
        }).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"修改意见成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:500,
                type:0,
                msg:"服务器异常"
            })
        })
    })
})

router.post("/addoutinlog",(req,res)=>{
    getMobile(req,res,mobile=>{
        var body=req.body;
        body.mobile=mobile;
        body.startTime=new Date();
        // body.username=users
        console.log(body)
        Outin.insertMany(body)
        .then(data=>{
            Outin.find({}).sort({_id:-1}).then(result=>{
                res.json({
                    code:200,
                    type:1,
                    msg:"出入记录添加成功",
                    result
                })
            })
        }).catch(err=>{
            res.json({
                code:500,
                type:0,
                msg:"服务器异常",
            })
        })
    })
})
router.post("/findoutinlist",(req,res)=>{
    getMobile(req,res,mobile=>{
        Outin.find({

        }).then(result=>{
            res.json({
                code:200,
                msg:"查询成功",
                type:1,
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                type:0,
                msg:"查询失败"
            })
        })
    })
})
router.post("/handleSetoutin",(req,res)=>{
    getMobile(req,res,mobile=>{
        var body=req.body;
        _id=body._id;
        Outin.update({
            _id
        },{
            $set:{
                endTime:new Date()
            }
        }).then(result=>{
            res.json({
                code:200,
                type:1,
                msg:"添加出入记录成功",
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                msg:"服务器异常",
                type:0
            })
        })
    })
})
router.post("/findoutinlogtime",(req,res)=>{
    var body =req.body
    getMobile(req,res,mobile=>{
        Outin.find({
            $or:[{startTime:{
                $gte:body.startTime,
                $lte:body.endTime
            }},{endTime:{
                $gte:body.startTime,
                $lte:body.endTime
            }}]
        }).then(result=>{
            res.json({
                code:200,
                msg:"查询成功",
                type:1,
                result
            })
        }).catch(err=>{
            res.json({
                code:200,
                msg:"查询失败",
                type:0
            })
        })
    })
})
router.post("/findonemodify",(req,res)=>{
    getMobile(req,res,mobile=>{
        UserList.update({
            mobile
        },{
            $set:{
                password:req.body.newpass2
            }
        }).then(data=>{
            UserList.find({mobile}).then(result=>{
                res.json({
                    code:200,
                    msg:"密码修改成功",
                    type:1,
                    result
                })
            }).catch(err=>{
                res.json({
                    code:200,
                    msg:"密码修改失败",
                    type:1,
                    result
                })
            })
        })
    })
})

router.get("/login",(req,res)=>{
    var body = req.body;
    Users.findOne({
        username:body.username,
        mobile:body.mobile, 
    })
    .then(result=>{
        if(result){
            if(result.password == body.password){
                res.json({
                    code:200,
                    msg:"登录成功",
                    type:1,
                    result
                })
            }else{
                res.json({
                    code:200,
                    msg:"登录失败,手机号与密码不匹配",
                    type:0,
                })
            }
        }else{
            res.json({
                code:200,
                msg:"登录失败",
                type:0,
            })
        }
    })
    .catch(err=>{
        res.json({
            code:500,
            msg:"服务器数据异常",
            type:0,
        })
    })
})
module.exports=router;